package cn.janyd.jmall.system.rpc.admin;

import cn.janyd.common.core.vo.CommonResult;
import cn.janyd.common.core.vo.PageQuery;
import cn.janyd.common.core.vo.PageResult;
import cn.janyd.jmall.system.rpc.admin.dto.*;

/**
 * 管理员RPC
 *
 * @author janyd
 * @since 2020/8/14 20:32
 */
public interface AdminRpcService {

    /**
     * 获取管理员信息
     *
     * @param adminId 管理员ID
     * @return 管理员信息
     */
    CommonResult<AdminRespDTO> getAdmin(Integer adminId);

    /**
     * 分页获取管理列表
     *
     * @param pageQuery 分页参数
     * @return 分页管理员数据
     */
    CommonResult<PageResult<AdminRespDTO>> pageAdmin(PageQuery<AdminPageDTO> pageQuery);

    /**
     * 创建管理员
     *
     * @param adminCreateReq 管理员信息
     * @return 管理员信息
     */
    CommonResult<AdminRespDTO> createAdmin(AdminCreateReqDTO adminCreateReq);

    /**
     * 更新管理员
     *
     * @param adminUpdateReq 管理员信息
     * @return 是否成功
     */
    CommonResult<Boolean> updateAdmin(AdminUpdateReqDTO adminUpdateReq);

    /**
     * 验证密码
     *
     * @param adminVerifyPassword 验证信息
     * @return 管理员信息
     */
    CommonResult<AdminRespDTO> verifyPassword(AdminVerifyPasswordDTO adminVerifyPassword);
}
